package com.clementheliou.cheliou.dal.model.photo.enumeration;

import com.clementheliou.cheliou.dal.model.photo.Photo;

/**
 * Enumeration that contains all types of {@link Photo}. It's only used to determinate the requested
 * file's paths.
 * 
 * @author Clément HELIOU (clement.heliou@gmail.com)
 * @since 1.0
 */
public enum PhotoType {

	/**
	 * The gallery version of a photo.
	 * 
	 * @author Clément HELIOU (clement.heliou@gmail.com)
	 * @since 1.0
	 */
	GALLERY("gallery.png"),

	/**
	 * The large version of a photo.
	 * 
	 * @author Clément HELIOU (clement.heliou@gmail.com)
	 * @since 1.0
	 */
	LARGE("large.png"),

	/**
	 * The medium version of a photo.
	 * 
	 * @author Clément HELIOU (clement.heliou@gmail.com)
	 * @since 1.0
	 */
	MEDIUM("medium.png"),

	/**
	 * The small version of a photo.
	 * 
	 * @author Clément HELIOU (clement.heliou@gmail.com)
	 * @since 1.0
	 */
	SMALL("small.png"),

	/**
	 * The version of a photo that is used as an extract on its technical data sheet.
	 * 
	 * @author Clément HELIOU (clement.heliou@gmail.com)
	 * @since 1.0
	 */
	TECHNICAL_DATA_SHEET("technicalDataSheet.png");

	/**
	 * The file name of the photo version.
	 * 
	 * @author Clément HELIOU (clement.heliou@gmail.com)
	 * @since 1.0
	 */
	private String fileName;

	/**
	 * Constructor from the given file name.
	 * 
	 * @author Clément HELIOU (clement.heliou@gmail.com)
	 * @param fileName the file name to be used.
	 * @since 1.0
	 */
	private PhotoType(final String fileName) {
		this.fileName = fileName;
	}

	/*
	 * Getters & setters.
	 */

	public String getFileName() {
		return fileName;
	}
}
